package 强化训练;

public class 两数之和 {
    public static void main(String[] args) {
        System.out.println(addAB(1, 3));
        Object o = new Object(){
            @Override
            public boolean equals(Object obj) {
                return true;
            }
        };
        System.out.println(o.equals("213"));
    }
    public static int addAB(int A, int B) {
        // 当两数的产生的进位为 0,就退出循环，返回其无进位和，就是结果
        while ((A & B) != 0) {
            int A_B = A ^ B;// 无进位求和
            int AB = (A & B) << 1;// 得到进位
            // 接下来就是求 得到的进位 + 无进位之和，重复前面的操作，直到不产生进位
            A = A_B;
            B = AB;
        }
        // 最后返回新的无进位之和
        return (A ^ B);
    }

}
